$(function () {
        $('#attens_table').datagrid({   //定位到Table标签，Table标签的ID是grid
           /**
            * 基本参数设置
            */
        	url: 'atten!queryPageList.action',   //指向后台的Action来获取当前菜单的信息的Json格式的数据
        	height: 'auto',
        	width: '100%',//function () { return document.body.clientWidth * 0.9; }
            pagination: true,//分页是否显示
        	
            /**
        	 * 头部设置  数据的一些操作
        	 */
        	title: '通讯录管理界面',
            iconCls: 'icon-view',
            toolbar:"#tb",//在添加 增添、删除、修改操作的按钮要用到这个 
            /**
             * 数据显示设置
             */
            loadMsg: "正在载入数据...",
            nowrap: true,//是否禁止文字自动换行设置为 true，则把数据显示在一行里。设置为 true 可提高加载性能。
            striped: true,//奇偶行使用不同背景色
            collapsible: true,//是否可折叠即表格收缩
            rownumbers: true,//行号
            fitColumns: true,//设置为 true，则会自动扩大或缩小列的尺寸以适应网格的宽度并且防止水平滚动
            singleSelect: false,//设置为 true，则只允许选中一行。
            checkOnSelect:false,//如果设置为 true，当部门点击某一行时，则会选中/取消选中复选框。如果设置为 false 时，只有当部门点击了复选框时，才会选中/取消选中复选框
            sortOrder: 'asc',//排序升序还是降序
            remoteSort: false,//是否往后台发送排序
            columns:[[  //数据网格（datagrid）的列（column）的配置对象
                    {field: 'ck', checkbox: true },
                    {field:'attenId' , title:'通讯录编号' , width:100,align:'center',hidden:true},
                    {field:'userId' , title:'员工号' , width:100,align:'center'},
                    {field:'userName',title:'姓名',width:50,align:'center'},
                    {field:'tel',title:'手机号码',width:100,align:'center'},
                    {field:'email',title:'电子邮件',width:100,align:'center'},
                    {field:'homeTel',title:'家庭电话',width:100,align:'center'},
                    {field:'companyTel',title:'公司电话',width:100,align:'center'},
                    {field:'address',title:'通信地址',width:100,align:'center'}
            ]],
        });
        //////设置分页控件 
        var p = $('#attens_table').datagrid('getPager');
        $(p).pagination({
            showPageList: true,
            pageSize: 10,//每页显示的记录条数，默认为10 
            pageList: [10, 20, 30],//可以设置每页记录条数的列表 
            beforePageText: '第',//页数文本框前显示的汉字 
            afterPageText: '页    共 {pages} 页',
            displayMsg: '当前显示 {from} - {to} 条记录   共 {total} 条记录'
        });
        
    $('#userId').combobox({ 
        loader:btsloader, 
        onSelect: function(){
        	var userId = $('#userId').combobox('getValue');
        	$.ajax({ 
        		url:'atten!searchUserNameByUserId.action', 
        		type:"post",  
        		data:{  
        			//传值，还是JSON数据 
        			userId:userId
        		},    
        		
        		//重要，如果写jsonp会报转换错误，此处不写都可以 
        		success:function(data){  
        			$('#userName').textbox('setValue', data);
        		}    
        	});
        },
        editable:true, //不可编辑状态
        cache: false,
        panelHeight: 'auto',//自动高度适合
        valueField:'id',   
        textField:'name',
     }); 
});      
            
        
 var url;
/**
 * 新增部门
 */
function addAtten(){//新增部门
	$("#addAttenFm").form("submit",{  //做提交动作
		url:url, 
		onSubmit:function(){// onSubmit  提交前触发，返回 false 来阻止提交动作
			return $(this).form("validate");
		},
		success:function(data){//当表单提交成功之后的回调函数
			if(data){
				$.messager.alert("系统提示","保存成功");
				$("#addAttenDlg").dialog("close");
				$("#attens_table").datagrid("reload");
			}else{
				$.messager.alert("系统提示","保存失败");
				return;
			}
		}
	});
}

//重置新增部门的值
function resetValue(){
	$("#userId").textbox('setValue',"");
	$("#userName").textbox('setValue',"");
	$("#tel").textbox('setValue',"");
	$("#email").textbox('setValue',"");
	$("#homeTel").textbox('setValue',"");
	$("#companyTel").textbox('setValue',"");
	$("#address").textbox('setValue',"");
}

//打开添加部门的对话框
function openAddAttenDialog(){
	$("#addAttenDlg").dialog("open").dialog("setTitle","添加联系人信息");
	resetValue();
	url="atten!addAtten.action";
}
    	
//关闭打开部门的对话框
function closeAddAttenDlg(){
	$("#addAttenDlg").dialog("close");
}

/**
 * 修改部门
 */

var row;
function openUpdateAttenDialog(){
	var selectedRows=$("#attens_table").datagrid('getSelections');
	if(selectedRows.length!=1){
		$.messager.alert("系统提示","请选择一条要编辑的数据！");
		return;
	}
	row=selectedRows[0];
	$("#updateAttenDlg").dialog("open").dialog("setTitle","编辑联系人信息");
	$("#userId1").textbox('setValue',row.userId);
	$("#userName1").textbox('setValue',row.userName);
	$("#tel1").textbox('setValue',row.tel);
	$("#email1").textbox('setValue',row.email);
	$("#homeTel1").textbox('setValue',row.homeTel);
	$("#companyTel1").textbox('setValue',row.companyTel);
	$("#address1").textbox('setValue',row.address);
	url="atten!updateAtten.action?attenId="+row.attenId;
}

function updateAtten(){//修改部门
	$("#updateAttenFm").form("submit",{  //做提交动作
		url:url, 
		onSubmit:function(){// onSubmit  提交前触发，返回 false 来阻止提交动作
			return $(this).form("validate");
		},
		success:function(data){//当表单提交成功之后的回调函数
			if(data){
				$.messager.alert("系统提示","修改成功");
				resetValue1();
				$("#updateAttenDlg").dialog("close");
				$("#attens_table").datagrid("reload");
			}else{
				$.messager.alert("系统提示","修改失败");
				return;
			}
		}
	});
}

//关闭修改部门的对话框
function closeUpdateAttenDlg(){
	$("#updateAttenDlg").dialog("close");
	resetValue1();
}

//重置修改部门的值
function resetValue1(){
	$("#userId1").textbox('setValue',"");
	$("#userName1").textbox('setValue',"");
	$("#tel1").textbox('setValue',"");
	$("#email1").textbox('setValue',"");
	$("#homeTel1").textbox('setValue',"");
	$("#companyTel1").textbox('setValue',"");
	$("#address1").textbox('setValue',"");
}


/**
 * 删除部门
 */
function deleteAtten(){
	var selectedRows=$("#attens_table").datagrid('getSelections');//返回所有选中的行，当没有选中的记录时，将返回空数组。
	if(selectedRows.length==0){
		$.messager.alert("系统提示","请选择要删除的数据！");
		return;
	}
	var strAttenNames=[];
	for(var i=0;i<selectedRows.length;i++){
		strAttenNames.push(selectedRows[i].attenId);
	}
	var attenNames=strAttenNames.join(",");
	$.messager.confirm("系统提示","您确认要删除这<font color=red>"+selectedRows.length+"</font>条数据吗？",function(r){
		if(r){
			$.post("atten!deleteAtten.action",{attenNames:attenNames},function(data){
				if(data){
					$.messager.alert("系统提示","该联系人已成功删除！");
					$("#attens_table").datagrid("reload");
				}else{
					$.messager.alert("系统提示","该联系人删除失败！");
				}
			},"json");
		}
	});
}	


/**
 * 查找部门
 * load ------加载并显示第一页的行，如果指定 'param' 参数，它将替换 queryParams 属性。
 * 通常情况下，通过传递一些从参数进行查询，该方法被调用来从服务器加载新数据。 
 * type 为传过去的参数名
 */
function searchAtten(){
	$("#attens_table").datagrid('load',{
		type: 'userId',
		userId:$("#userId2").val()
	});
}

var userName = "";

var btsloader = function(param,success,error){//获取输入的值  
	var q = param.q || "";   
	//此处q的length代表输入多少个字符后开始查询  
	if(q.length <= 0) return false;  
	$.ajax({ 
		//ayn:true,
		url:"atten!getAllUserId.action", 
		type:"post",  
		data:{  
			//传值，还是JSON数据 
			searchUserId:q 
		},    
		
		//重要，如果写jsonp会报转换错误，此处不写都可以 
		dataType:"json",  
		success:function(data){   
			//关键步骤，遍历一个MAP对象 
			var items = $.map(data, function(item){
				return { 
					id:item.userId,
					name:item.userId,
					
				}; 
				
			});    
			//执行loader的success方法 
			success(items); 
		},   
		//异常处理 
		error:function(xml, text, msg){ 
			error.apply(this, arguments); 
		}  
	});  
};


//重写验证规则  检验新增考勤记录时的员工编号唯一性
/**
 * validatebox 验证类型 
 * required: "必选字段",
         remote: "请修正该字段",
         email: "请输入正确格式的电子邮件",
         url: "请输入合法的网址",
         date: "请输入合法的日期",
         dateISO: "请输入合法的日期 (ISO).",
         number: "请输入合法的数字",
         digits: "只能输入整数",
         creditcard: "请输入合法的信用卡号",
         equalTo: "请再次输入相同的值",
         accept: "请输入拥有合法后缀名的字符串",
         maxlength: jQuery.format("请输入一个长度最多是 {0} 的字符串"),
         minlength: jQuery.format("请输入一个长度最少是 {0} 的字符串"),
         rangelength: jQuery.format("请输入一个长度介于 {0} 和 {1} 之间的字符串"),
         range: jQuery.format("请输入一个介于 {0} 和 {1} 之间的值"),
         max: jQuery.format("请输入一个最大为 {0} 的值"),
         min: jQuery.format("请输入一个最小为 {0} 的值")

data-options="required:true,validType:'length[1,3]'" ;//输入字符长度1-3位

 */
$.extend($.fn.validatebox.defaults.rules, {
       minLength: {
           validator: function (value, param) {
               return value.length >= param[0];
           },
           message: '请输入至少（2）个字符.'
       },
       length: { validator: function (value, param) {
           var len = $.trim(value).length;
           return len >= param[0] && len <= param[1];
       },
           message: "输入内容长度必须介于{0}和{1}之间."
       },
       phone: {// 验证电话号码
          validator: function (value) {
               return /^((\d2,3 )|(\d{3}\-))?(0\d2,3 |0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value);
           },
           message: '格式不正确,请使用下面格式:020-88888888'
       },
       mobile: {// 验证手机号码
          validator: function (value) {
               return /^(13|15|18)\d{9}$/i.test(value);
           },
           message: '手机号码格式不正确'
       },
       same: {
           validator: function (value, param) {
               if ($("#" + param[0]).val() != "" && value != "") {
                   return $("#" + param[0]).val() == value;
               } else {
                   return true;
               }
           },
           message: '两次输入的密码不一致！'
       }
});

